package pimgui;


/**
 * Mainframe des PIM
 * 
 * Beschreibung der Benennung der Felder "Name des Fensters"_"Wenn Vorhanden Namen des Untertabs"_Componentenname_irgendein Name passend zu Feld
 * z.B.: pimGui_aufgabe_button_neueaufgabe
 * 
 */
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.net.URL;
import java.util.Date;
import java.util.Locale;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ListModel;
import javax.swing.ListSelectionModel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;
import javax.swing.UIManager.LookAndFeelInfo;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.plaf.metal.DefaultMetalTheme;
import javax.swing.plaf.metal.MetalLookAndFeel;

import pimcontr.PimListener;
import pimcontr.Pimlogik;
import pimcontr.FrameDescriptionHelper;

import com.toedter.calendar.JCalendar;
import com.toedter.calendar.JDateChooser;
import com.toedter.calendar.JDayChooser;


import java.util.*;
/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/

public class PimGui extends javax.swing.JFrame{

	private static final String PIMGUI20 = "pimgui20";

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
			URL bildURL= getClass().getResource("/pimbilder/Logo250250.png");
			ImageIcon programmsymbol = new ImageIcon(bildURL)	;
			this.setIconImage(programmsymbol.getImage());
		} catch(Exception e) {
			e.printStackTrace();
		}
	}


// Die Optik wurde mit Jigloo erstellt, einfach im Eclipse rechts auf die blauen markierungen klicken,
// hab die wichtigen listener mal mit todo gekennzeichnet
	private String aufgabeListEintrag = null;
	private ListModel jList6Model =null;
	public String ausgabe="";
	public JTabbedPane overviewTab;
	public JScrollPane pimgui_aufgabe_scrollleiste_textarea;
	public JScrollPane pimgui_aufgabe_scrollleiste_liste;
	public JPopupMenu jPopupMenu1;
	public JButton pimgui_notiz_button_notizloeschen;
	public JButton pimgui_notiz_button_notizbearbeiten;
	public JButton pimgui_notiz_button_notizerstellen;
	public JButton pimgui_kontakt_button_kontaktanlegen;
	public JButton pimgui_kontakt_button_kontaktloeschen;
	public JButton pimgui_kontakt_button_kontaktbearbeiten;
	public JButton pimgui_aufgabe_button_aufgabeloeschen;
	public JButton pimgui_aufgabe_button_aufgabebearbeiten;
	public JButton pimgui_kalendar_button_terminanlegen;
	public JButton pimgui_kalender_button_terminbearbeiten;
	public JButton pimgui_kalender_button_terminloeschen;
	public JMenu pimgui_menusuchen;
	public JMenu pimgui_menudatei;
	public JMenuBar pimgui_menubar;
//	public JPanel pan_erinnerung;
	public JList pimgui_notiz_liste_notizliste;
	public JScrollPane pimgui_notiz_scrollleiste_liste;
	public JTextArea pimgui_notiz_textarea_notizausgabe;
	public JScrollPane pimgui_notiz_scrollleiste_textarea;
	public JPanel pan_notiz;
	public JTextArea pimgui_kontakt_textarea_kontaktausgabe;
	public JScrollPane pimgui_kontakt_scrollleiste_textarea;
	public JList pimgui_kontakt_liste_kontaktliste;
	public JScrollPane pimgui_kontakt_scrollleiste_liste;
	public JTextArea pimgui_kalendar_textarea_terminausgabe;
	public JList pimgui_kalender_liste_terminliste;
	public JTextArea pimgui_aufgabe_textarea_aufgabenausgabe;
	public JList pimgui_aufgabe_liste_aufgabenliste;
	public JPanel pan_kontakt;
	public JButton pimgui_aufgabe_button_neueAufgabe;
	public JPanel pan_task;
	public JScrollPane pimgui_kalendar_scrollleiste_textarea;
	public JScrollPane pimgui_kalender_scrollleiste_liste;
	public JPanel pan_cal;
	public JTabbedPane tab_overView;

	public static PimGui inst;
	public static PimListener optik;
	public static Pimlogik client;
	public JMenuItem jMenuItem2;
	public JMenuItem jMenuItem1;
	public JMenu jMenu1;
	//public JTextArea jTextArea4;
	
	public JScrollPane jScrollPane2;
	public JMenuItem jMenuItem11;
	public JMenuItem jMenuItem10;
	public JMenu jMenu3;
	public JMenuItem jMenuItem7;
	public JMenuItem jMenuItem6;
	public JMenuItem jMenuItem5;
	public JMenuItem jMenuItem4;
	public JMenuItem pimgui_menuitem_beenden;
	public JSeparator pimgui_seperator_datei;
	public JMenuItem pimgui_menuitem_laden;
	public JMenuItem pimgui_menuitem_speichern;
	public JMenu pimgui_menuaussehen;
	public JTextArea pimgui_uebersicht_textarea_terminundausgabenausgabe;
	public JScrollPane pimgui_uebersicht_scrollleiste_textarea;
	public JList pimgui_uebersicht_liste_aufgabenundterminliste;
	public JScrollPane pimgui_uebersicht_scrollleiste_liste;
	public JCalendar pimgui_kalender_calendar;
	public JPanel pan_kalen;
	public JLabel erinnerung_label;
	
	
//	public ResourceBundle resourceBundle;
	public static ResourceBundle descriptor;

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		//args[0] ="de";
		//args[1] ="DE";
		final String language = "de";//args[0].trim();
        final String country = "DE";//args[1].trim(); 
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				//TODO initialisierung der gui und der beiden Managementobjekte optik und client
				descriptor = FrameDescriptionHelper.getDescriptor(language,country);
				inst = new PimGui(descriptor);
				client= new Pimlogik(inst, descriptor);
				optik= new PimListener(inst);
				
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
				inst.setTitle("Personal Information Manager 50+");
				client.datenladen();
			}
		});
	}
	
	public static ResourceBundle getResourceBundle(){
		return descriptor;
	}
	//resource im pim einfugen
	public PimGui(final ResourceBundle resourceBundle) {
		super();
		initGUI(resourceBundle);
	}
	
	private void initGUI(final ResourceBundle resourceBundle) {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			this.setTitle(resourceBundle.getString("pimgui1"));
			{
				pimgui_menubar = new JMenuBar();
				setJMenuBar(pimgui_menubar);
				pimgui_menubar.setFont(new java.awt.Font("SansSerif",0,16));
				{
					pimgui_menudatei = new JMenu();
					pimgui_menubar.add(pimgui_menudatei);
					pimgui_menudatei.setText(resourceBundle.getString("pimgui2"));
					pimgui_menudatei.setFont(new java.awt.Font("SansSerif",0,16));
					{
						pimgui_menuitem_laden = new JMenuItem();
						pimgui_menudatei.add(pimgui_menuitem_laden);
						pimgui_menuitem_laden.setText(resourceBundle.getString("pimgui3"));
						pimgui_menuitem_laden.addActionListener(new ActionListener(){
										@Override
										public void actionPerformed(ActionEvent e) {
											try{
												
												client.datenladen();
										
											} catch (Exception ex){
												ex.printStackTrace();
											}
										}
						});
						pimgui_menuitem_laden.setFont(new java.awt.Font("SansSerif",0,14));
					}
					
					{
						pimgui_menuitem_speichern = new JMenuItem();
						pimgui_menudatei.add(pimgui_menuitem_speichern);
						pimgui_menuitem_speichern.setText(resourceBundle.getString("pimgui4"));
						pimgui_menuitem_speichern.addActionListener(new ActionListener(){
										@Override
										public void actionPerformed(ActionEvent e) {
											try{
												
												client.datenspeichern();
										
											} catch (Exception ex){
												ex.printStackTrace();
											}
										}
						});
						pimgui_menuitem_speichern.setFont(new java.awt.Font("SansSerif",0,14));
					}
					{
						pimgui_seperator_datei = new JSeparator();
						pimgui_menudatei.add(pimgui_seperator_datei);
					}
					{
						pimgui_menuitem_beenden = new JMenuItem();
						pimgui_menudatei.add(pimgui_menuitem_beenden);
						pimgui_menuitem_beenden.setText(resourceBundle.getString("pimgui5"));
						pimgui_menuitem_beenden.addActionListener(new ActionListener(){
							@Override
							public void actionPerformed(ActionEvent e) {
								try{
									
									System.exit(0);
							
								} catch (Exception ex){
									ex.printStackTrace();
								}
							}
							});
						pimgui_menuitem_beenden.setFont(new java.awt.Font("SansSerif",0,14));
					}
				}
				{
					pimgui_menusuchen = new JMenu();
					pimgui_menubar.add(pimgui_menusuchen);
					pimgui_menusuchen.setText(resourceBundle.getString("pimgui6"));
					pimgui_menusuchen.setFont(new java.awt.Font("SansSerif",0,16));
					{
						jMenuItem6 = new JMenuItem();
						pimgui_menusuchen.add(jMenuItem6);
						jMenuItem6.setText(resourceBundle.getString("pimgui9"));
						jMenuItem6.addActionListener(new ActionListener(){
					    @Override
					    public void actionPerformed(ActionEvent e) {
					      client.kontaktsuchen(client,optik,descriptor);
					    }
						});
						jMenuItem6.setFont(new java.awt.Font("SansSerif",0,14));
					}
					
				}
//				{
//					pimgui_menuaussehen = new JMenu();
//					pimgui_menubar.add(pimgui_menuaussehen);
//					pimgui_menuaussehen.setText(resourceBundle.getString("pimgui11"));
//					pimgui_menuaussehen.setFont(new java.awt.Font("SansSerif",0,16));
//					{
//						jMenu3 = new JMenu();
//						pimgui_menuaussehen.add(jMenu3);
//						jMenu3.setText("TESTAUSSEHEN");//resourceBundle.getString("pimgui12"));
//						jMenu3.setFont(new java.awt.Font("SansSerif",0,14));
//						{
//							jMenuItem10 = new JMenuItem();
//							jMenu3.add(jMenuItem10);
//							jMenuItem10.setText("Nimbus");
//							jMenuItem10.setFont(new java.awt.Font("SansSerif",0,14));
//									jMenuItem10.addActionListener(new ActionListener(){
//										@Override
//										public void actionPerformed(ActionEvent e) {
//											try{
//												
//												UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
//												SwingUtilities.updateComponentTreeUI(inst);
//												System.out.println(UIManager.getLookAndFeel().toString());
//											} catch (Exception ex){
//												ex.printStackTrace();
//											}
//										}
//								    	
//								    });
//								
//							}
//						}
//						{
//							jMenuItem11 = new JMenuItem();
//							jMenu3.add(jMenuItem11);
//							jMenuItem11.setText("Windows Standard");
//							jMenuItem11.setFont(new java.awt.Font("SansSerif",0,14));
//							jMenuItem11.addActionListener(new ActionListener(){
//						            public void actionPerformed(ActionEvent arg0) {
//						                System.out.println("You have clicked on the new action");
//						                try {
//						                	
//						                	  UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
//						                	  SwingUtilities.updateComponentTreeUI(inst);
//						                	  System.out.println(UIManager.getLookAndFeel().toString());
//										} catch (Exception e) {
//											// Auto-generated catch block
//											e.printStackTrace();
//										} 
//						            
//						        }});
//							
//							
//						}
//					}
				{
					jMenu1 = new JMenu();
					pimgui_menubar.add(jMenu1);
					jMenu1.setText(resourceBundle.getString("pimgui13"));
					jMenu1.setFont(new java.awt.Font("SansSerif",0,16));
					{
						jMenuItem1 = new JMenuItem();
						jMenu1.add(jMenuItem1);
						jMenuItem1.setText(resourceBundle.getString("pimgui14"));
						jMenuItem1.setFont(new java.awt.Font("SansSerif",0,14));
 						jMenuItem1.addActionListener(new ActionListener(){
							/*
							 * (non-Javadoc)
							 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
							 * hier wird der ubersetzung angerufen und der PIMGUI mit passende sprache umsetzen"Deutsch"
							 */
				            public void actionPerformed(ActionEvent arg0) {
				            	 try {
				            	String isoLanguage = "de";
				            	String isoCountry = "DE";
				            	String[] args = new String[]{isoLanguage,isoCountry};

				            	descriptor = FrameDescriptionHelper.getDescriptor(isoLanguage, isoCountry);
				            	Map<JMenu, String> map = client.getMenuMap();
				            	Map<JMenuItem, String> map2 = client.getMenuItemMap();
				            	Map<JButton, String>map3=client.getJButtonMap();
				            	aufgabeListEintrag = resourceBundle.getString(PIMGUI20);
				            	getLocale();
								pimgui_kalender_calendar. setLocale(Locale.GERMAN);
								pimgui_notiz_textarea_notizausgabe.setText(PimGui.getResourceBundle().getString("pimgui17"));
		            			pimgui_aufgabe_textarea_aufgabenausgabe.setText(PimGui.getResourceBundle().getString("pimgui17"));
								pimgui_kalendar_textarea_terminausgabe.setText(PimGui.getResourceBundle().getString("pimgui26") );
								pimgui_kontakt_textarea_kontaktausgabe.setText(PimGui.getResourceBundle().getString("pimgui17"));
				            	client.uebersetzeJmenu(map, descriptor);
				            	client.uebersetzeJmenuItem(map2, descriptor);
				            	client.uebersetzeJButton(map3, descriptor);
				            	client.uebersetzeJTabbedPane(overviewTab, descriptor);
				            	client.uebersetzeListModel(new DefaultComboBoxModel(
										new String[] {descriptor.getString(PIMGUI20)}),pimgui_aufgabe_liste_aufgabenliste, descriptor,PIMGUI20);
				            	client.uebersetzeListModel(new DefaultComboBoxModel(
								new String[] {descriptor.getString("pimgui25")}),pimgui_kalender_liste_terminliste, descriptor,"pimgui25");
				            	client.uebersetzeListModel(new DefaultComboBoxModel(
										new String[] {descriptor.getString("pimgui31")}),pimgui_kontakt_liste_kontaktliste, descriptor,"pimgui31");
				            	client.uebersetzeListModel(new DefaultComboBoxModel(
										new String[] {descriptor.getString("pimgui36")}),pimgui_notiz_liste_notizliste, descriptor,"pimgui36");
		            			descriptor.getString("pimgui17");
		            			client.terminausgabeNachDatum(pimgui_kalender_calendar.getDate());
		            			client.ausgabe();
		            			

		            			
		            			
								
								
		            			
//				            	SwingUtilities.updateComponentTreeUI(inst);
				            	
				             
//			                	main(args);"pimgui31""pimgui36"

				                
								}catch (Exception e) {
									// Auto-generated catch block
									e.printStackTrace();
								} 
				          
				        }

							});
					
					}
					{
						jMenuItem2 = new JMenuItem();
						jMenu1.add(jMenuItem2);
						jMenuItem2.setText(resourceBundle.getString("pimgui15"));
						jMenuItem2.setFont(new java.awt.Font("SansSerif",0,14));
						jMenuItem2.addActionListener(new ActionListener(){
							/*
							 * (non-Javadoc)
							 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
							 * hier wird der ubersetzung angerufen und der PIMGUI mit passende sprache umsetzen"English"
							 */
				            public void actionPerformed(ActionEvent arg0) {
				                System.out.println("You have clicked on English");
				                try {
				                	String isoLanguage = "en";
					            	String isoCountry = "EN";
//					            	String[] args = new String[]{isoLanguage,isoCountry};
					            	descriptor = FrameDescriptionHelper.getDescriptor(isoLanguage, isoCountry);
					            	getLocale();
									pimgui_kalender_calendar. setLocale(Locale.ENGLISH);
									pimgui_notiz_textarea_notizausgabe.setText(PimGui.getResourceBundle().getString("pimgui17"));
					            	pimgui_aufgabe_textarea_aufgabenausgabe.setText(PimGui.getResourceBundle().getString("pimgui17"));
									pimgui_kalendar_textarea_terminausgabe.setText(PimGui.getResourceBundle().getString("pimgui26") );
									pimgui_kontakt_textarea_kontaktausgabe.setText(PimGui.getResourceBundle().getString("pimgui17"));
									
					            	Map<JMenu, String> map = client.getMenuMap();
					            	Map<JMenuItem, String> map2 = client.getMenuItemMap();
					            	Map<JButton, String>map3=client.getJButtonMap();
					            	client.uebersetzeJmenu(map, descriptor);
					            	client.uebersetzeJmenuItem(map2, descriptor);
					            	client.uebersetzeJButton(map3, descriptor);
					            	client.uebersetzeJTabbedPane(overviewTab, descriptor);
					            	client.uebersetzeListModel(new DefaultComboBoxModel(
													new String[] {descriptor.getString(PIMGUI20)}),pimgui_aufgabe_liste_aufgabenliste, descriptor,PIMGUI20);
					            	client.uebersetzeListModel(new DefaultComboBoxModel(
											new String[] {descriptor.getString("pimgui25")}),pimgui_kalender_liste_terminliste, descriptor,"pimgui25");
					            	client.uebersetzeListModel(new DefaultComboBoxModel(
											new String[] {descriptor.getString("pimgui31")}),pimgui_kontakt_liste_kontaktliste, descriptor,"pimgui31");
					            	client.uebersetzeListModel(new DefaultComboBoxModel(
											new String[] {descriptor.getString("pimgui36")}),pimgui_notiz_liste_notizliste, descriptor,"pimgui36");
					            	descriptor.getString("pimgui17");
					            	client.terminausgabeNachDatum(pimgui_kalender_calendar.getDate());
					            	client.ausgabe();
					            	
									

					            	
					            	//					            	  SwingUtilities.updateComponentTreeUI(inst);
//				                	 PimGui.main(args);
								} catch (Exception e) {
									// Auto-generated catch block
									e.printStackTrace();
								} 				            
				        }});
					}
				}
			}
			
			{
				overviewTab = new JTabbedPane();
				overviewTab.setTabPlacement(JTabbedPane.LEFT);
				getContentPane().add(overviewTab);
				overviewTab.setBounds(0, 0, 1026, 647);
				overviewTab.setFont(new java.awt.Font("SansSerif",0,20));
				
				/*{
					pan_erinnerung = new JPanel();
					overviewTab.addTab(resourceBundle.getString("pimgui16"), null, pan_erinnerung, null);
					pan_erinnerung.setLayout(null);
					pan_erinnerung.setPreferredSize(new java.awt.Dimension(843, 624));
					pan_erinnerung.setFont(new java.awt.Font("SansSerif",0,12));
					{
						pimgui_uebersicht_scrollleiste_liste = new JScrollPane();
						pan_erinnerung.add(pimgui_uebersicht_scrollleiste_liste);
						pimgui_uebersicht_scrollleiste_liste.setBounds(6, 6, 427, 546);
						{
							ListModel jList13Model = 
									new DefaultComboBoxModel(
											new String[] { "Item One", "Item Two" });
							pimgui_uebersicht_liste_aufgabenundterminliste = new JList();
							pimgui_uebersicht_scrollleiste_liste.setViewportView(pimgui_uebersicht_liste_aufgabenundterminliste);
							pimgui_uebersicht_liste_aufgabenundterminliste.setModel(jList13Model);
							pimgui_uebersicht_liste_aufgabenundterminliste.setSize(420, 530);
						}
					}
					{
						pimgui_uebersicht_scrollleiste_textarea = new JScrollPane();
						pan_erinnerung.add(pimgui_uebersicht_scrollleiste_textarea);
						pimgui_uebersicht_scrollleiste_textarea.setBounds(439, 6, 353, 431);
						{
							pimgui_uebersicht_textarea_terminundausgabenausgabe = new JTextArea();
							pimgui_uebersicht_scrollleiste_textarea.setViewportView(pimgui_uebersicht_textarea_terminundausgabenausgabe);
							pimgui_uebersicht_textarea_terminundausgabenausgabe.setText(resourceBundle.getString("pimgui17"));
						}
					}
				}
				*/
				{
					
					
					pan_task = new JPanel();
					
					URL bildURL= getClass().getResource("/pimbilder/taskliste.png");
					overviewTab.addTab(resourceBundle.getString("pimgui18")+"  ", new ImageIcon( bildURL ), pan_task, null);
					pan_task.setLayout(null);
					pan_task.setFont(new java.awt.Font("SansSerif",0,14));
					{
						pimgui_aufgabe_button_neueAufgabe = new JButton();
						pan_task.add(pimgui_aufgabe_button_neueAufgabe);
						pimgui_aufgabe_button_neueAufgabe.setText(resourceBundle.getString("pimgui19"));
						pimgui_aufgabe_button_neueAufgabe.setBounds(20, 580, 227, 52);
						pimgui_aufgabe_button_neueAufgabe.setFont(new java.awt.Font("SansSerif",0,14));
						pimgui_aufgabe_button_neueAufgabe.addActionListener(new ActionListener(){
							//TODO genauso wie unten bei Notizbearbeiten nur dass hier ein neuer Notiz erstellt wird
						@Override
								public void actionPerformed(ActionEvent e) {
								client.aufgabeanlegen(client,optik,descriptor);
						}
						});
					}
					{
						pimgui_aufgabe_scrollleiste_liste = new JScrollPane();
						pan_task.add(pimgui_aufgabe_scrollleiste_liste);
						pimgui_aufgabe_scrollleiste_liste.setBounds(6, 6, 428, 542);
						{
							aufgabeListEintrag =  descriptor.getString(PIMGUI20);
							jList6Model = 
									new DefaultComboBoxModel(
											new String[] {PimGui.getResourceBundle().getString("pimgui20")/*aufgabeListEintrag*/});
							pimgui_aufgabe_liste_aufgabenliste = new JList();
							pimgui_aufgabe_scrollleiste_liste.setViewportView(pimgui_aufgabe_liste_aufgabenliste);
							pimgui_aufgabe_liste_aufgabenliste.setModel(jList6Model);
							pimgui_aufgabe_liste_aufgabenliste.setSize(420, 530);
							pimgui_aufgabe_liste_aufgabenliste.addListSelectionListener(new ListSelectionListener(){
								  public void valueChanged(ListSelectionEvent evt) {
								        if (evt.getValueIsAdjusting())
								          return;
								        if (pimgui_aufgabe_liste_aufgabenliste.getSelectedValue()!=null){
								        client.aufgabeausgabe(pimgui_aufgabe_liste_aufgabenliste.getSelectedValue(), descriptor);
								        }
								      }						    
							});
						}
					}
					{
						pimgui_aufgabe_scrollleiste_textarea = new JScrollPane();
						pan_task.add(pimgui_aufgabe_scrollleiste_textarea);
						pimgui_aufgabe_scrollleiste_textarea.setBounds(440, 6, 352, 542);
						{
							pimgui_aufgabe_textarea_aufgabenausgabe = new JTextArea();
							pimgui_aufgabe_scrollleiste_textarea.setViewportView(pimgui_aufgabe_textarea_aufgabenausgabe);
							pimgui_aufgabe_textarea_aufgabenausgabe.setText(PimGui.getResourceBundle().getString("pimgui17"));
							pimgui_aufgabe_textarea_aufgabenausgabe.setEditable(false);
						}
					}
					{
						pimgui_aufgabe_button_aufgabebearbeiten = new JButton();
						pan_task.add(pimgui_aufgabe_button_aufgabebearbeiten);
						pimgui_aufgabe_button_aufgabebearbeiten.setText(resourceBundle.getString("pimgui22"));
						pimgui_aufgabe_button_aufgabebearbeiten.setBounds(280, 580, 227, 52);
						pimgui_aufgabe_button_aufgabebearbeiten.setFont(new java.awt.Font("SansSerif",0,14));
						pimgui_aufgabe_button_aufgabebearbeiten.addActionListener(new ActionListener(){
							//TODO genauso wie unten bei Notizbearbeiten nur dass hier ein neuer Notiz erstellt wird
						@Override
								public void actionPerformed(ActionEvent e) {
								
								client.aufgabebearbeiten(client,optik,descriptor);
//								client.aufgabeanlegen(client,optik);
										 
						}
						});	
					}
					{
						pimgui_aufgabe_button_aufgabeloeschen = new JButton();
						pan_task.add(pimgui_aufgabe_button_aufgabeloeschen);
						pimgui_aufgabe_button_aufgabeloeschen.setText(resourceBundle.getString("pimgui23"));
						pimgui_aufgabe_button_aufgabeloeschen.setBounds(550, 580, 227, 52);
						pimgui_aufgabe_button_aufgabeloeschen.setFont(new java.awt.Font("SansSerif",0,14));
						pimgui_aufgabe_button_aufgabeloeschen.addActionListener(new ActionListener(){
							//TODO genauso wie unten bei Notizbearbeiten nur dass hier ein neuer Notiz erstellt wird
						@Override
								public void actionPerformed(ActionEvent e) {
								client.aufgabeloeschen(client,optik,descriptor);
						}
						});
					}
				}
				{
					pan_cal = new JPanel();
					URL bildURL= getClass().getResource("/pimbilder/termin2.png");
					overviewTab.addTab(resourceBundle.getString("pimgui24")+"  ",  new ImageIcon( bildURL ), pan_cal, null);
					pan_cal.setLayout(null);
					pan_cal.setPreferredSize(new java.awt.Dimension(907, 598));
					pan_cal.setFont(new java.awt.Font("SansSerif",0,12));
					{
						pan_kalen = new JPanel();
						pan_cal.add(pan_kalen);
						pan_kalen.setBounds(98, -73, 10, 10);
					}
					{
						
						pimgui_kalender_calendar = new JCalendar();
						//pimgui_kalender_calendar.addPropertyChangeListener(new CalendarProListener());
						
						//TODO listener fuer den Calendar der das angeklickte datum ausgibt in der Console als Test 
						pimgui_kalender_calendar.addPropertyChangeListener(	new PropertyChangeListener() {
							@Override
							public void propertyChange(PropertyChangeEvent evt) {
								//System.out.println(pimgui_kalender_calendar.getDate());
								if (client!=null){
								client.terminausgabeNachDatum(pimgui_kalender_calendar.getDate());
								ausgabe+=pimgui_kalender_calendar.getDate()+"\n";
								}
								
								//pimgui_notiz_textarea_notizausgabe.setText(ausgabe);
							}
							
						}); 
						pan_cal.add(pimgui_kalender_calendar);
						pimgui_kalender_calendar.setBounds(12, 12, 556, 441);
						
					}
					{
						pimgui_kalender_scrollleiste_liste = new JScrollPane();
						pan_cal.add(pimgui_kalender_scrollleiste_liste);
						pimgui_kalender_scrollleiste_liste.setBounds(584, 12, 223, 194);
						{
							ListModel jList7Model = 
									new DefaultComboBoxModel(
											new String[] { PimGui.getResourceBundle().getString("pimgui25")/*resourceBundle.getString("pimgui25")*/ });
							pimgui_kalender_liste_terminliste = new JList();
							pimgui_kalender_scrollleiste_liste.setViewportView(pimgui_kalender_liste_terminliste);
							pimgui_kalender_liste_terminliste.setModel(jList7Model);
							pimgui_kalender_liste_terminliste.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
							pimgui_kalender_liste_terminliste.setPreferredSize(new java.awt.Dimension(217, 188));
							pimgui_kalender_liste_terminliste.addListSelectionListener(new ListSelectionListener(){
								  public void valueChanged(ListSelectionEvent evt) {
								        if (evt.getValueIsAdjusting())
								          return;
								        if (pimgui_kalender_liste_terminliste.getSelectedValue()!=null){
								        client.terminausgabe(pimgui_kalender_liste_terminliste.getSelectedValue(),descriptor);
								        }
								      }
								    
							});
							
						}
					}
					{
						pimgui_kalendar_scrollleiste_textarea = new JScrollPane();
						pan_cal.add(pimgui_kalendar_scrollleiste_textarea);
						pimgui_kalendar_scrollleiste_textarea.setBounds(584, 212, 223, 206);
						{
							pimgui_kalendar_textarea_terminausgabe = new JTextArea();
							pimgui_kalendar_scrollleiste_textarea.setViewportView(pimgui_kalendar_textarea_terminausgabe);
							pimgui_kalendar_textarea_terminausgabe.setText(PimGui.getResourceBundle().getString("pimgui26")/*resourceBundle.getString("pimgui26")*/);
							pimgui_kalendar_textarea_terminausgabe.setEditable(false);
						}
					}
					{
						pimgui_kalender_button_terminloeschen = new JButton();
						pan_cal.add(pimgui_kalender_button_terminloeschen);
						pimgui_kalender_button_terminloeschen.setText(resourceBundle.getString("pimgui27"));
						pimgui_kalender_button_terminloeschen.addActionListener(new ActionListener(){
							@Override
							public void actionPerformed(ActionEvent e) {
							client.terminloeschen(client,optik,descriptor);
							}
						});
						pimgui_kalender_button_terminloeschen.setBounds(550, 580, 227, 52);
						pimgui_kalender_button_terminloeschen.setFont(new java.awt.Font("SansSerif",0,14));
					}
					{
						pimgui_kalender_button_terminbearbeiten = new JButton();
						pan_cal.add(pimgui_kalender_button_terminbearbeiten);
						pimgui_kalender_button_terminbearbeiten.setText(resourceBundle.getString("pimgui28"));
						pimgui_kalender_button_terminbearbeiten.addActionListener(new ActionListener(){
							//TODO actionlistener wird auf den Button Terminbearbeiten gelegt der dann die beiden managementobjekt an die zentrale Klasse Pimlogik uebergibt
							//damit diese immer aktuell bleiben diese funktion erstellt dann ein neues Fenster zum bearbeiten eines termins
							@Override
									public void actionPerformed(ActionEvent e) {
									client.terminbearbeiten(client,optik,descriptor);
							}
							});
						pimgui_kalender_button_terminbearbeiten.setBounds(280, 580, 227, 52);
						pimgui_kalender_button_terminbearbeiten.setFont(new java.awt.Font("SansSerif",0,14));
					}
					{
						pimgui_kalendar_button_terminanlegen = new JButton();
						pan_cal.add(pimgui_kalendar_button_terminanlegen);
						pimgui_kalendar_button_terminanlegen.setText(resourceBundle.getString("pimgui29"));
						pimgui_kalendar_button_terminanlegen.addActionListener(new ActionListener(){
							//TODO genauso wie oben bei Terminbearbeiten nur dass hier ein neuer Termin erstellt wird
						@Override
								public void actionPerformed(ActionEvent e) {
								client.terminanlegen(client,optik,descriptor);
						}
						});
						pimgui_kalendar_button_terminanlegen.setBounds(20, 580, 227, 52);
						pimgui_kalendar_button_terminanlegen.setFont(new java.awt.Font("SansSerif",0,14));
					}
				}
				{
					pan_kontakt = new JPanel();
					URL bildURL= getClass().getResource("/pimbilder/kontakt.png");
					overviewTab.addTab(resourceBundle.getString("pimgui30")+"  ", new ImageIcon( bildURL ), pan_kontakt, null);
					pan_kontakt.setLayout(null);
					pan_kontakt.setPreferredSize(new java.awt.Dimension(870, 606));
					{
						pimgui_kontakt_scrollleiste_liste = new JScrollPane();
						pan_kontakt.add(pimgui_kontakt_scrollleiste_liste);
						pimgui_kontakt_scrollleiste_liste.setBounds(6, 6, 427, 543);
						{
							ListModel jList11Model = 
									new DefaultComboBoxModel(
											new String[] {PimGui.getResourceBundle().getString("pimgui31")/*resourceBundle.getString("pimgui31")*/  });
							pimgui_kontakt_liste_kontaktliste = new JList();
							pimgui_kontakt_scrollleiste_liste.setViewportView(pimgui_kontakt_liste_kontaktliste);
							pimgui_kontakt_liste_kontaktliste.setModel(jList11Model);
							pimgui_kontakt_liste_kontaktliste.addListSelectionListener(new ListSelectionListener(){
								  public void valueChanged(ListSelectionEvent evt) {
								        if (evt.getValueIsAdjusting())
								          return;
								        if (pimgui_kontakt_liste_kontaktliste.getSelectedValue()!=null){
								        client.kontaktausgabe(pimgui_kontakt_liste_kontaktliste.getSelectedValue(),descriptor);
								        }
								      }
								    
							});
							pimgui_kontakt_liste_kontaktliste.setPreferredSize(new java.awt.Dimension(420, 537));
							pimgui_kontakt_liste_kontaktliste.setSize(420, 530);
						}
					}
					{
						pimgui_kontakt_scrollleiste_textarea = new JScrollPane();
						pan_kontakt.add(pimgui_kontakt_scrollleiste_textarea);
						pimgui_kontakt_scrollleiste_textarea.setBounds(439, 6, 350, 543);
						{
							pimgui_kontakt_textarea_kontaktausgabe = new JTextArea();
							pimgui_kontakt_scrollleiste_textarea.setViewportView(pimgui_kontakt_textarea_kontaktausgabe);
							pimgui_kontakt_textarea_kontaktausgabe.setText(PimGui.getResourceBundle().getString("pimgui17"));
							pimgui_kontakt_textarea_kontaktausgabe.setEditable(false);
						}
					}
					{
						pimgui_kontakt_button_kontaktbearbeiten = new JButton();
						pan_kontakt.add(pimgui_kontakt_button_kontaktbearbeiten);
						pimgui_kontakt_button_kontaktbearbeiten.setText(resourceBundle.getString("pimgui32"));
						pimgui_kontakt_button_kontaktbearbeiten.addActionListener(new ActionListener(){
							@Override
							public void actionPerformed(ActionEvent e) {
							client.kontaktbearbeiten(client,optik,descriptor);
							}
						});
						pimgui_kontakt_button_kontaktbearbeiten.setBounds(280, 580, 227, 52);
						pimgui_kontakt_button_kontaktbearbeiten.setFont(new java.awt.Font("SansSerif",0,14));
					}
					{
						pimgui_kontakt_button_kontaktloeschen = new JButton();
						pan_kontakt.add(pimgui_kontakt_button_kontaktloeschen);
						pimgui_kontakt_button_kontaktloeschen.setText(resourceBundle.getString("pimgui33"));
						pimgui_kontakt_button_kontaktloeschen.addActionListener(new ActionListener(){
							@Override
							public void actionPerformed(ActionEvent e) {
							client.kontaktloeschen(descriptor);
							}
						});
						pimgui_kontakt_button_kontaktloeschen.setBounds(550, 580, 227, 52);
						pimgui_kontakt_button_kontaktloeschen.setFont(new java.awt.Font("SansSerif",0,14));
					}
					{
						pimgui_kontakt_button_kontaktanlegen = new JButton();
						pan_kontakt.add(pimgui_kontakt_button_kontaktanlegen);
						pimgui_kontakt_button_kontaktanlegen.setText(resourceBundle.getString("pimgui34"));
						pimgui_kontakt_button_kontaktanlegen.addActionListener(new ActionListener(){
							@Override
							public void actionPerformed(ActionEvent e) {
							client.kontaktanlegen(client,optik,descriptor);
							}
						});
						pimgui_kontakt_button_kontaktanlegen.setBounds(20, 580, 227, 52);
						pimgui_kontakt_button_kontaktanlegen.setFont(new java.awt.Font("SansSerif",0,14));
					}
				}
				{
					pan_notiz = new JPanel();
					URL bildURL= getClass().getResource("/pimbilder/notizneu.png");
					overviewTab.addTab(resourceBundle.getString("pimgui35") +"     ", new ImageIcon( bildURL ), pan_notiz, null);
					pan_notiz.setLayout(null);
					{
						pimgui_notiz_scrollleiste_textarea = new JScrollPane();
						pan_notiz.add(pimgui_notiz_scrollleiste_textarea);
						pimgui_notiz_scrollleiste_textarea.setBounds(442, 6, 352, 537);
						{
							pimgui_notiz_textarea_notizausgabe = new JTextArea();
							pimgui_notiz_scrollleiste_textarea.setViewportView(pimgui_notiz_textarea_notizausgabe);
							pimgui_notiz_textarea_notizausgabe.setText(PimGui.getResourceBundle().getString("pimgui17"));
							pimgui_notiz_textarea_notizausgabe.setEditable(false);
						}
					}
					{
						pimgui_notiz_scrollleiste_liste = new JScrollPane();
						pan_notiz.add(pimgui_notiz_scrollleiste_liste);
						pimgui_notiz_scrollleiste_liste.setBounds(7, 6, 427, 537);
						{
							ListModel jList12Model = 
									new DefaultComboBoxModel(
											new String[] {PimGui.getResourceBundle().getString("pimgui36")/*resourceBundle.getString("pimgui36")*/ } );
						pimgui_notiz_liste_notizliste = new JList();
						pimgui_notiz_scrollleiste_liste.setViewportView(pimgui_notiz_liste_notizliste);
						pimgui_notiz_liste_notizliste.setModel(jList12Model);						
						pimgui_notiz_liste_notizliste.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
						pimgui_notiz_liste_notizliste.setSize(420, 530);
						pimgui_notiz_liste_notizliste.addListSelectionListener(new ListSelectionListener(){
							  public void valueChanged(ListSelectionEvent evt) {
							        if (evt.getValueIsAdjusting())
							          return;
							        if (pimgui_notiz_liste_notizliste.getSelectedValue()!=null){
							        client.notizausgabe(pimgui_notiz_liste_notizliste.getSelectedValue(), descriptor);
							        }
							      }
							    
						});
						}
					}
					{
						pimgui_notiz_button_notizerstellen = new JButton();
						pan_notiz.add(pimgui_notiz_button_notizerstellen);
						pimgui_notiz_button_notizerstellen.setText(resourceBundle.getString("pimgui37"));
						pimgui_notiz_button_notizerstellen.setBounds(20, 580, 227, 52);
						pimgui_notiz_button_notizerstellen.setFont(new java.awt.Font("SansSerif",0,14));
						pimgui_notiz_button_notizerstellen.addActionListener(new ActionListener(){
							//TODO genauso wie unten bei Notizbearbeiten nur dass hier ein neuer Notiz erstellt wird
						@Override
								public void actionPerformed(ActionEvent e) {
								client.notizanlegen(client,optik,descriptor);
						}
						});						
					}
					{
						pimgui_notiz_button_notizbearbeiten = new JButton();
						pan_notiz.add(pimgui_notiz_button_notizbearbeiten);
						pimgui_notiz_button_notizbearbeiten.setText(resourceBundle.getString("pimgui38"));
						pimgui_notiz_button_notizbearbeiten.setBounds(280, 580, 227, 52);
						pimgui_notiz_button_notizbearbeiten.setFont(new java.awt.Font("SansSerif",0,14));
						pimgui_notiz_button_notizbearbeiten.addActionListener(new ActionListener(){
							//TODO actionlistener wird auf den Button Notizbearbeiten gelegt der dann die beiden managementobjekt an die zentrale Klasse Pimlogik uebergibt
							//damit diese immer aktuell bleiben diese funktion erstellt dann ein neues Fenster zum bearbeiten eines termins
							@Override
									public void actionPerformed(ActionEvent e) {
									client.notizbearbeiten(client,optik,descriptor);
							}
							});
					}
					{
						pimgui_notiz_button_notizloeschen = new JButton();
						pan_notiz.add(pimgui_notiz_button_notizloeschen);
						pimgui_notiz_button_notizloeschen.setText(resourceBundle.getString("pimgui39"));
						pimgui_notiz_button_notizloeschen.setBounds(550, 580, 227, 52);
						pimgui_notiz_button_notizloeschen.setFont(new java.awt.Font("SansSerif",0,14));
						pimgui_notiz_button_notizloeschen.addActionListener(new ActionListener(){
							@Override
							public void actionPerformed(ActionEvent e) {
							client.notizloeschen(descriptor);
							}
						});
					}
				}
				
				
				

				}
			pack();
			this.setSize(1100, 714);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}
	
//	private void uebersetze(JMenu jMenu1, ResourceBundle resourceBundleGerman, String feld){
//		jMenu1.setText(resourceBundleGerman.getString(feld));
//	}
//	/*
//	 * Methode zur ubersetzung von JMenu
//	 */
//	private void uebersetzeJmenu(Map<JMenu, String> map, ResourceBundle resourceBundle){
//		for(JMenu jMenu: map.keySet()){		
//			jMenu.setText(resourceBundle.getString(map.get(jMenu)));
//		}	
//		
//	}
//	/*
//	 * hier wird jeder JMenu in einer map einfugen
//	 */
//	private Map<JMenu, String> getMenuMap() {
//		Map<JMenu, String> map= new HashMap<JMenu, String>();
//    	map.put(pimgui_menudatei, "pimgui2");
//    	map.put(pimgui_menuaussehen, "pimgui11");
//    	map.put(jMenu3, "pimgui12");
//    	map.put(jMenu1, "pimgui13");
//    	map.put(pimgui_menusuchen, "pimgui6");
//		return map;
//	}
//	/*
//	 * Methode zur ubersetzung von JMenuItem
//	 */
//	private void uebersetzeJmenuItem(Map<JMenuItem, String> map, ResourceBundle resourceBundle){
//		for(JMenuItem jMenuItem: map.keySet()){		
//			jMenuItem.setText(resourceBundle.getString(map.get(jMenuItem)));
//		}	
//		
//	}
//	/*
//	 * hier wird jeder JMenuItem in einer map einfugen
//	 */
//	private Map<JMenuItem, String> getMenuItemMap() {
//		Map<JMenuItem, String> map= new HashMap<JMenuItem, String>();
//    	map.put(pimgui_menuitem_laden, "pimgui3");
//    	map.put(pimgui_menuitem_speichern, "pimgui4");
//    	map.put(pimgui_menuitem_beenden, "pimgui5");
//    	map.put(pimgui_menuitem_beenden, "pimgui5");
//    	map.put(jMenuItem4, "pimgui7");
//    	map.put(jMenuItem5, "pimgui8");
//    	map.put(jMenuItem6, "pimgui9");
//    	map.put(jMenuItem7, "pimgui10");
//    	map.put(jMenuItem1, "pimgui14");
//    	map.put(jMenuItem2, "pimgui15");
//		return map;
//	}
//	/*
//	 * Methode zur ubersetzung von JTabbedPane
//	 */
//	private void uebersetzeJPanel(Map<JPanel, String> map, ResourceBundle resourceBundle){
//		for(JPanel panel: map.keySet()){		
//			  panel.setToolTipText(resourceBundle.getString(map.get(panel)));
//		}	
//	}
//	/*
//	 * hier wird jeder JTabbedPane in einer map einfugen
//	 */
//	private Map<JPanel, String> getJPanelMap() {
//		Map<JPanel, String> map= new HashMap<JPanel, String>();
//    	map.put(pan_erinnerung , "pimgui16");
//    	map.put(pan_task, "pimgui18");
//    	map.put(pan_cal, "pimgui24");
//    	map.put(pan_notiz, "pimgui35");
//    	map.put(pan_kontakt, "pimgui30");
//    	 
//		return map;
//	}
//	/*
//	 * Methode zur ubersetzung von Jbutton
//	 */
//	private void uebersetzeJBouton(Map<JButton, String> map, ResourceBundle resourceBundle){
//		for(JButton jButton: map.keySet()){		
//			jButton.setText(resourceBundle.getString(map.get(jButton)));
//		}	
//	}
//	/*
//	 * hier wird jeder JButton in einer map einfugen
//	 */
//	private Map<JButton, String> getJButtonMap() {
//		Map<JButton, String> map= new HashMap<JButton, String>();
//    	map.put(pimgui_aufgabe_button_neueAufgabe, "pimgui19");
//    	map.put(pimgui_aufgabe_button_aufgabedrucken, "pimgui21");
//    	map.put(pimgui_aufgabe_button_aufgabebearbeiten, "pimgui22");
//    	map.put(pimgui_aufgabe_button_aufgabeloeschen, "pimgui23");
//    	map.put(pimgui_kalender_button_termindrucken, "pimgui21");
//    	 map.put(pimgui_kalender_button_terminloeschen, "pimgui27");
//    	map.put(pimgui_kalender_button_terminbearbeiten, "pimgui28");
//    	map.put(pimgui_kalendar_button_terminanlegen, "pimgui29");
//    	map.put(pimgui_kontakt_button_kontaktdrucken, "pimgui21");
//    	
//    	 map.put(pimgui_kontakt_button_kontaktbearbeiten, "pimgui32");
//     	map.put(pimgui_kontakt_button_kontaktloeschen, "pimgui33");
//     	map.put(pimgui_kontakt_button_kontaktanlegen, "pimgui34");
//     	map.put(pimgui_notiz_button_notizdrucken, "pimgui21");
//     	
//     	 map.put(pimgui_notiz_button_notizerstellen, "pimgui37");
//      	map.put(pimgui_notiz_button_notizbearbeiten, "pimgui38");
//      	map.put(pimgui_notiz_button_notizloeschen, "pimgui39");
//      	map.put(pimgui_buttonsuchen, "pimgui6");
//      	map.put(pimgui_buttonbeenden, "pimgui5");
//      
//    	 
//		return map;
//	
//	}
//	
	/**
	* Auto-generated method for setting the popup menu for a component
	*/
	private void setComponentPopupMenu(final java.awt.Component parent, final javax.swing.JPopupMenu menu) {
		parent.addMouseListener(new java.awt.event.MouseAdapter() {
			public void mousePressed(java.awt.event.MouseEvent e) {
				if(e.isPopupTrigger())
					menu.show(parent, e.getX(), e.getY());
			}
			public void mouseReleased(java.awt.event.MouseEvent e) {
				if(e.isPopupTrigger())
					menu.show(parent, e.getX(), e.getY());
			}
		});
	}
	
	 
	 


	 

}
